Resistive memory elements are programmable to different resistive states by the application of programming energy (e.g., a voltage or current pulse). After a resistive memory element is programmed, the state of the element is readable and remains stable over a specified time period. Resistive memory elements may be configured into large arrays to form resistive memory devices. Resistive memory devices may be used in a variety of applications, such as non-volatile solid state memory, programmable logic, signal processing, control systems, pattern recognition devices, etc. Some examples of resistive memory devices include memristors, phase change memory, and spin-transfer torque. In particular, a single memristor is a passive two-terminal element that maintains a functional relationship between the time integral of current (i.e., charge) and the time integral of voltage. The resistance of the memristor depends on the material, thickness, and the state the device. The resistance of each state also depends on the magnitude and polarity of the voltage applied thereto, and on the length of time that voltage has been applied.